package com.sc.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.annotation.DbType;
import com.sc.handler.ListTypeHandler;  // 引入自定义类型处理器
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.type.TypeHandler;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class MybatisConfig {

    /**
     * 配置 Mybatis-Plus 拦截器，加入分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 配置分页插件，支持 MySQL
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
//
//    /**
//     * 自定义 SqlSessionFactory 配置，使用自定义类型处理器
//     */
//    @Bean
//    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
//        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
//        factoryBean.setDataSource(dataSource);
//
//        // 注册自定义类型处理器，确保它能在 MyBatis 中生效
//        factoryBean.setTypeHandlers(configuration());
//
//        // 返回配置好的 SqlSessionFactory
//        return factoryBean.getObject();
//    }
//
//    private org.apache.ibatis.session.Configuration configuration() {
//    org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
//
//    // 可以通过 configuration 设置特定的字段类型处理器
//    // configuration.getTypeHandlerRegistry().register(ListTypeHandler.class);
//
//    return configuration;
//}
}
